/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelos.daos;

import controladores.ManejadorBaseDatos;
import modelos.pojos.CheckInHabitacion;
import modelos.pojos.CheckInSala;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author ricardo
 */
public class CheckInSalaDAO {

    private static Connection con;
    public static List<CheckInSala> resultados;

    public static void crear(CheckInSala checkInSala) throws SQLException, Exception {

        ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
        mbd.conectar();
        con = mbd.getConexion();

        if (con == null) {
            throw new SQLException("Ha ocurrido un error al intentar conectarse con la base de datos");
        }

        PreparedStatement pst = null;

        try {
            pst = con.prepareStatement("Insert Into CheckInSala values(?,?,?,?,?)");
            pst.setString(1, null);
            pst.setInt(2, checkInSala.getReservaSala().getId());
            pst.setInt(3, checkInSala.getEmpleado().getId());
            pst.setTimestamp(4, new Timestamp(checkInSala.getFechaRegistro().getTime()));
            pst.setString(5, checkInSala.getEstado()+"");
            pst.executeUpdate();
        } finally {
            if (pst != null) {
                pst.close();
            }
        }
    }

    public static CheckInHabitacion consultar(String cedula) throws SQLException {
        ResultSet rs = null;
        PreparedStatement pst = null;
        CheckInHabitacion checkInHabitacion = null;

        try {
            ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
            mbd.conectar();
            con = mbd.getConexion();
            pst = con.prepareStatement("select * from Cliente where cedula = ?");
            pst.setString(1, cedula);

            rs = pst.executeQuery();

            while (rs.next()) {
//                checkInHabitacion = CheckInHabitacion.cargarDatos(rs);
            }
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
            return checkInHabitacion;
        }
    }
public static List consultarFacturables(modelos.pojos.Reserva reserva) throws SQLException {

        ResultSet rs = null;
        PreparedStatement pst = null;
        resultados = null;

        try {
            ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
            mbd.conectar();
            con = mbd.getConexion();
            pst = con.prepareStatement("Select CheckInSala.*, ReservaSala.idSala from CheckInSala inner join ReservaSala on ReservaSala.id = CheckInSala.idReservaSala and CheckInSala.estado='r' and ReservaSala.idReserva = ?;");
            pst.setInt(1, reserva.getId());
            rs = pst.executeQuery();

            while (rs.next()) {
                if (resultados == null) {
                    resultados = new LinkedList<CheckInSala>();
                }
                resultados.add(CheckInSala.cargarDatos(rs, reserva.getCodigoReserva()));
            }
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
            return resultados;
        }
    }
}
